﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cesave.Domain.PermisosModule.Entities;

namespace Cesave.Domain.PermisosModule.Contracts.Secciones
{
	/// <summary>
	/// 
	/// </summary>
	public interface ISeccionService
		: IDisposable
	{
		/// <summary>
		/// 
		/// </summary>
		/// <param name="seccion"></param>
		void AddSeccion(Seccion seccion);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="seccion"></param>
		void ChangeSeccion(Seccion seccion);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="moduloGuid"></param>
		/// <returns></returns>
		List<Seccion> FindSeccionesByModulo(Guid moduloGuid);

		/// <summary>
		/// 
		/// </summary>
		/// <param name="moduloGuid"></param>
		/// <param name="status"></param>
		/// <returns></returns>
		List<Seccion> FindSeccionesByModuloAndStatus(Guid moduloGuid, bool status = true);

        /// <summary>
        /// Encuentra las secciones de acuerdo a la junta.
        /// </summary>
        /// <param name="juntaGuid">
        /// GUID de la junta.
        /// </param>
        /// <returns>
        /// Lista de secciones.
        /// </returns>
        List<Seccion> FindSeccionesByJunta(Guid juntaGuid);

        /// <summary>
        /// Encuentra la sección con el GUID indicado.
        /// </summary>
        /// <param name="seccionGuid">
        /// GUID de la sección
        /// </param>
        /// <returns></returns>
        Seccion FindSeccionByGuid(Guid seccionGuid);

	}
}